Quality of Service (QoS) is an evolving technology in today's networking infrastructure. It allows the networks to provide different levels of services for different types of network traffic. Packet policing is one of the important elements used extensively to support a QoS framework. Packet policing refers to the per packet analysis of whether each packet adheres to the QoS requirements of a network element.
Packet policing involves measuring the traffic rate against specified rates of the traffic type and taking specified actions based on the measured results. There are several industry specifications defining how policing operations can be performed. Examples of these specifications are Internet Engineering Task Force (IETF) Request for Comments (RFC) 2697, RFC 2698, and RFC 4115 and Metro Ethernet Forum (MEF) 10.2. All of these documents describe how individual policing operations may be performed. Varying communicating protocols utilize different methods and specifications for implementing packet policing. For example, internet protocol (IP) packet policing may utilize RFC 4115, “A Differentiated Service, Two-Rate, Three-Color Marker with Efficient Handling of in-Profile Traffic” (July 2005), describes “a two-rate, three-color marker” for traffic metering and marking. The RFC describes a packet marker that classifies a packet into RED, YELLOW, or GREEN categories according to the size of the packet and the current state of token buckets used in a packet meter. For instance, one token bucket may track the committed information rate while another token bucket may track the excess information rate. The network element may then react to the classification by dropping all RED packets, transmitting YELLOW packets according to a best effort, and transmitting GREEN packets with a low probability of drop.
As the network infrastructure evolves over time, the complexity of policing operation also increases. One example is to allow one or multiple policing operations be performed on a single packet. When multiple policing operations are performed on a packet, the action taken on the packet may vary depending on configuration of the network, customer desires, or technological requirements.
One prior art solution is to configure the packet policing operation entirely in software to provide flexibility in the configuration of the policing operations. However, as the data rate of a network increases the performance of a pure software solution cannot keep up with the increasing data rate. Another prior art solution is to implement specific packet policing configurations in hardwired logic. In this solution, the hardware is fast enough to keep up with the increasing data rates, but the hardware does not have the flexibility to adapt to varied configurations and changing requirements.